

#[macro_use]
mod macros {
    macro_rules! x { () => { y!(); } }
    macro_rules! y { () => {} }
}

mod innermacros {
    macro_rules! z { () => { Y!(); } }
}

#[cfg(test)]
mod tests {
    // 在 Rust 的 2015 和 2018 版本中，导入 macro_rules! 宏是不一样的。 仍然建议阅读这两部分，因为 2018 版使用的结构在 2015 版中做出了解释。
    #[test]
    fn test_macro_use() {
        x!();
        y!();
        // z!();    // z!() 无法使用 have you added the `#[macro_use]` on the module/import?
    }
}